amazon (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储
数字资产,包括
图片、
视频、
音乐和文档。 S3 提供一个 RESTful API 以编程方式实现与该服务的交互。
服务介绍
amazon (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储
数字资产,包括图片、视频、音乐和文档。 S3 提供一个 RESTful API 以编程方式实现与该服务的交互。
云是一个抽象的概念,表示松散连接在一起的计算机组,这些计算机共同执行某项任务或者服务,就像是使用一个单独的实体完成一样。此概念背后的架构也很抽象:每个云提供者都可以根据各自情况随意设计它的产品。
软件即服务(Software as a Service,
SaaS)是一个与云相关的概念,表示云向用户提供某种服务。
云模型可以降低用户成本,因为他们无需购买软件和硬件也可以运行 — 服务提供者已经为用户提供了必要的组件。
简介
尽管云计算这一术语并不新鲜(Amazon 在 2007 年就开始提供它的
云服务),但从 2008 年起它才开始真正成为流行词,这期间,Google 和 Amazon 的云服务逐渐获得了公众的关注。 Google 的 App Engine 使用户能够在 Google 基础设施上构建和托管 Web 应用程序。连同 S3,Amazon Web Services 还包括 Elastic Cloud Compute (EC2) 计算 Web 服务,该服务可以在 Amazon 的基础设施上托管应用程序。其他公司也开始蠢蠢欲动,准备与 Amazon 和 Google 一决高下,其中就包括 Microsoft®的 Azure,甚至 Sun Microsystems(其云计算还没有正式推向市场)也想分一杯羹。
以 Amazon 的 S3 产品为例。顾名思义,这是一个公开的服务,使 Web 开发人员能够存储
数字资产(如图片、视频、音乐和文档等),以便在应用程序中使用。使用 S3 时,它就像一个位于 Internet 的机器,有一个包含数字资产的硬盘驱动。实际上,它涉及到许多机器(位于各个地理位置),其中包含数字资产(或者数字资产的某些部分)。 Amazon 还处理所有复杂的服务请求,可以存储数据并检索数据。您只需要付少量的费用(大约每月 15 美分 /GB)就可以在 Amazon 的服务器上存储数据,1 美元即可通过 Amazon 服务器传输数据。
Amazon 的 S3 服务没有重复开发,它公开了 RESTful API,使您能够使用任何支持 HTTP 通信的语言访问 S3 。 JetS3t 项目是一个开源 Java 库,可以抽象出使用 S3 的 RESTful API 的细节,将 API 公开为常见的 Java 方法和类。编写的代码越少越好,难道不是吗?充分利用其他人的成果也是不错的。在本文中您将看到,JetS3t 使 S3 和 Java 语言的工作变得更加简单,从根本上提高了效率。
S3 介绍
理论上,S3 是一个全球
存储区域网络 (SAN),它表现为一个超大的硬盘,您可以在其中存储和检索
数字资产。但是,从技术上讲,Amazon 的架构有一些不同。您通过 S3 存储和检索的资产被称为对象。对象存储在存储段(bucket)中。您可以用硬盘进行类比:对象就像是文件,存储段就像是文件夹(或目录)。与硬盘一样,对象和存储段也可以通过统一资源标识符(Uniform Resource Identifier,URI)查找。
例如,在我的硬盘中,我有一个名为 whitepaper.pdf 的文件,它位于主目录中名为 documents 的文件夹中。相应的,该 pdf 文件的 URI 为 /home/aglover/documents/whitepaper.pdf 。在 S3 中,URI 有一点不同。首先,存储段只能是顶级的 — 无法像嵌套硬盘中的文件夹(或目录)一样进行嵌套。其次,存储段必须遵循 Internet 命名法则;句点旁边没有斜杠,名称不包括下划线等等。最后,由于存储段名称已经是 Amazon 域内的公共 URI 的一部分,存储段名称必须在所有 S3 中是惟一的。(好消息是每个帐户只能包含 100 个存储段,因此不用担心别人占用了所有的好名字)。
S3 数据加密方法
亚马逊S3 bucket和对象可以通过互联网访问。AWS安全控制用来保护其他的资源,比如安全群组和网络访问控制列表,但不保护S3中的数据。但是也有一些方法可以保护S3中的数据的机密性、完整性和可用性。
默认方式下,创建于亚马逊简单存储服务(S3)的对象只能够为创建它们的人访问。所有者可以授权其他人以粗粒度和细粒度的方式访问。比如一位所有者可以让数据集公开使用,每一个人都可以用这个对象的URL来访问。
或者所有者可以使用S3策略和身份及访问管理用户和群组,允许有限的用户集访问。S3策略也可以基于网络连接属性限制运行。如果你只希望企业网络的用户访问S3中的对象,指定所有的连接都从一个可信任的IP地址范围发出。其他地址尝试访问则会被拒绝。
如果你希望确保从S3下载下来的数据是加密的,拒绝访问任何不适SSL加密的连接。
还有一些方法可以用来在S3中实现加密。如果你使用AWS Key Management Service,就可以使用服务器端加密,允许
亚马逊Web服务(AWS)管理加密密钥。为了管理你自己的密钥,你需要使用服务器端加密密钥,并且在企业内部保存。第三种选择是在将数据发送到AWS之前加密数据。在这种场景中,你要管理加密流程的所有方面。
对于在S3中保护数据而言,审计是一个重要的安全流程。存储管理员可以配置亚马逊S3 bucket来记录所有的请求特定bucket的细节。他们可以在其他的亚马逊S3 bucket中存储日志文件,并且用不同的访问控制授权来最小化干预。